#include <bits/stdc++.h>
using namespace std;
const int N = 10+5; // 最多10架飞机
struct
{
    int t; // 最早开始降落时间
    int d; // 盘旋时间
    int l; // 下落时间
} feiji[N];
int n;
bool st[N];
bool dfs(int cur,int end)
{
    if(cur==n)
    {
        //代表飞机全部降落完成
        return true;
    }
    for(int i=0;i<n;i++)
    {
        //第0层第一次降落有n种选择
        //如果当前飞机的开始降落时间大于上一架飞机的降落完成时间说明当前飞机可以完成降落
        if(!st[i]&&feiji[i].t+feiji[i].d>=end)
        {
            st[i]=true;
            if(dfs(cur+1,max(feiji[i].t,end)+feiji[i].l)) return true;
            st[i]=false;
        }
    }
    return false;
}
void solve()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int a, b, c;
        cin >> a >> b >> c;
        feiji[i]={a,b,c};
    }
    memset(st,false,sizeof(st));
    if(dfs(0,0))
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout<<"NO"<<endl;
    }
}

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
}